﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Web.Routing;

namespace ProjectBase.Core.Web
{
    /// <summary>
    ///     Description for every Action
    /// </summary>
    public interface IActionItem
    {
        /// <summary>
        ///     Name which identifies actionItem by action name
        /// </summary>
        string ActionName { get; set; }

        /// <summary>
        ///     Controller on which is Action hosted
        /// </summary>
        string ControllerName { get; set; }

        /// <summary>
        ///     The value (if any) which should be pass as parameter.
        ///     (it is an abbreviation for the RouteValues["id"] = ActionValue)
        /// </summary>
        string ActionValue { get; set; }

        /// <summary>
        ///     Extend the Path with key-pair values.
        ///     If ActionValue.Is(), then is converted into the { id = ActionValue }
        /// </summary>
        RouteValueDictionary RouteValues { get; set; }

        /// <summary>
        ///     String key which should be used for Localization.
        ///     This is used if string.IsNullOrEmpty(TextLocalized)
        ///     (when not provided, Action Name is used)
        /// </summary>
        string Text { get; set; }

        /// <summary>
        ///     Already localized and Text for user
        /// </summary>
        string TextLocalized { get; set; }

        /// <summary>
        ///     Where should the anchor navigate to
        /// </summary>
        string Href { get; set; }

        /// <summary>
        ///     What target for anchor should be used.
        ///     if string.IsNullOrEmpty(Target) current is used
        /// </summary>
        string Target { get; set; }

        /// <summary>
        ///     If TextLocalized is empty, Title is rendered
        ///     More detailed description for this action. Value will be localized
        ///     (See TitleLocalized).
        /// </summary>
        string Title { get; set; }

        /// <summary>
        ///     The more descriptive value of current action - localized.
        /// </summary>
        string TitleLocalized { get; set; }
    }
}